/**
 * Created by c.y on 2018-1-22
 * 文件说明: 产品管理员添加产品的提交的数据
 */

import prodData from './prodData';
import Cookies from 'js-cookie';

/**
 * 返回产品管理员添加产品需要的提交的数据
 * 1. 所有URL传递给后台的要encodeURIComponent，从后台获取URL需要decodeURIComponent
 * 2. 为空的数据，传递给后台使用null
 * 3. 产品列表信息----prodListItemInfo.type代表组件类型与产品详情信息---prodDetailInfo.components[i].type代表组件类型（有以下类型）
 * 1-产品列表信息, 2-产品详情信息头部, 3-产品详细信息,4-进件流程, 5-产品分类, 6-横幅
 * 4. 产品详情信息---prodDetailInfo.type代表模块类型（有以下类型）
 * 1-首页,2-产品详情页,3-产品分类列表页,4-横幅中心,5-产品类型中心,6-产品爆款推荐
 * @param {Object} productInfo 用户创建产品的数据对象
 * @return {Object} 提交到后台的数据对象
 */
function getSubmitInfo (productInfo) {
    let submitInfo = {
        // 产品基本信息
        prodBaseInfo: {
            id: null,
            prodId: null,
            prodName: productInfo.prodName,
            prodType: productInfo.prodType,
            buildType: productInfo.buildType,
            orgName: productInfo.orgName,
            prodUrl: productInfo.prodUrl,
            merId:  Cookies.get('flc_merId')
        },
        // 产品列表信息
        prodListItemInfo: {
            id: null, // 组件Id
            name: productInfo.prodName,
            tempId: null, // 模板号
            isModule: 0, // 是否是模块 0-否,1-是
            type: 1,
            showEles: prodData.createProdListElement(productInfo)
        },
        // 产品详情信息
        prodDetailInfo: {
            id: null, // 模块id
            name: productInfo.prodName,
            tempId: null,
            type: 2,
            isPage: 1,
            isModule: 1,
            // 这里是个组件数组,第一个组件类型为2,后面组件类型除了一个4以外全是3
            components: [
                {
                    id: null,
                    name: productInfo.prodName,
                    tempId: null,
                    type: 2,
                    isModule: 0,
                    showEles: prodData.createProdDetailHeadElement(productInfo)
                },
                {
                    id: null,
                    name: productInfo.rate,
                    tempId: null,
                    type: 3,
                    isModule: 0,
                    showEles: prodData.createProdDetailContentElement(productInfo.rateExample)
                },
                {
                    id: null,
                    name: productInfo.applyCond,
                    tempId: null,
                    type: 3,
                    isModule: 0,
                    showEles: prodData.createProdDetailContentElement(productInfo.applyCondCtn)
                },
                // 进件流程
                {
                    id: productInfo.processId,
                    type: 4
                },
                {
                    id: null,
                    name: productInfo.material,
                    tempId: null,
                    type: 3,
                    isModule: 0,
                    showEles: prodData.createProdDetailContentElement(productInfo.materialCtn)
                }
            ]
        },
        prodStepInfos: productInfo.prodStepInfos
    };
     // 判断是否添加的额外的标题与内容
    if (productInfo.otherDetails.length >= 1) {
        productInfo.otherDetails.forEach(function (item) {
            // 有title必须要content,不然不让添加title
            submitInfo.prodDetailInfo.components.push({
                id: null,
                name: item.title,
                tempId: null,
                type: 3,
                isModule: 0,
                showEles: prodData.createProdDetailContentElement(item.content)
            });
        });
    }
    return submitInfo;
}
export default getSubmitInfo;
